package com.sxy.service;

import java.util.List;

import com.sxy.dto.Exposer;
import com.sxy.dto.SeckillExecution;
import com.sxy.entity.Seckill;
import com.sxy.exception.RepeatKillException;
import com.sxy.exception.SeckillCloseException;
import com.sxy.exception.SeckillException;

/**  
* @ClassName: SeckillService  
* @Description: TODO(业务接口) 站在“使用者”角度设计接口；
* 三个方面：方法定义粒度，参数简单直接，返回类型（return 类型友好/异常）
* @author xy
* @date 2017年12月7日  
*    
*/ 
public interface SeckillService {
	//查询所有秒杀记录
	List<Seckill>getSeckillList();
	
	//查询单个秒杀记录
	Seckill getById(long seckillId);
	
	//秒杀开启时输出秒杀接口地址，否则输出系统时间和秒杀时间
	Exposer exportSeckillUrl(long seckillId);

	//执行秒杀操作
	SeckillExecution executeSeckill(long seckillId,long userPhone,String md5)
	     throws SeckillException,RepeatKillException,SeckillCloseException;

	//执行秒杀操作 -->存储过程
		SeckillExecution executeSeckillProdure(long seckillId,long userPhone,String md5);
}
